const crypto/internal/fips140/mlkem.k
23 uses
crypto/internal/fips140/mlkem (current package)
mlkem768.go#L57: k = 3
mlkem768.go#L59: CiphertextSize768 = k*encodingSize10 + encodingSize4
mlkem768.go#L60: EncapsulationKeySize768 = k*encodingSize12 + 32
mlkem768.go#L61: decapsulationKeySize768 = k*encodingSize12 + EncapsulationKeySize768 + 32 + 32
mlkem768.go#L157: t [k]nttElement // ByteDecode₁₂(ek[:384k])
mlkem768.go#L158: a [k * k]nttElement // A[i*k+j] = sampleNTT(ρ, j, i)
mlkem768.go#L163: s [k]nttElement // ByteDecode₁₂(dk[:decryptionKeySize])
mlkem768.go#L270: g.Write([]byte{k}) // Module dimension as a domain separator.
mlkem768.go#L276: for i := byte(0); i < k; i++ {
mlkem768.go#L277: for j := byte(0); j < k; j++ {
mlkem768.go#L278: A[i*k+j] = sampleNTT(ρ, j, i)
mlkem768.go#L288: e := make([]nttElement, k)
mlkem768.go#L298: t[i] = polyAdd(t[i], nttMul(A[i*k+j], s[j]))
mlkem768.go#L399: for i := byte(0); i < k; i++ {
mlkem768.go#L400: for j := byte(0); j < k; j++ {
mlkem768.go#L401: ek.a[i*k+j] = sampleNTT(ek.ρ[:], j, i)
mlkem768.go#L414: r, e1 := make([]nttElement, k), make([]ringElement, k)
mlkem768.go#L425: u := make([]ringElement, k) // NTT⁻¹(AT ◦ r) + e1
mlkem768.go#L430: u[i] = polyAdd(u[i], inverseNTT(nttMul(ex.a[j*k+i], r[j])))
mlkem768.go#L494: u := make([]ringElement, k)
mlkem768.go#L500: b := (*[encodingSize4]byte)(c[encodingSize10*k:])